home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Day Cry
/
Day Cry CD.bin
/
oh_towns
/
ein
/
sources
/
memsrc.lzh
/
MEM
/
GUI.C
next >
Wrap
C/C++ Source or Header
|
1994-09-05
|
11KB
|
395 lines
/*<Header>==============================================================
*
* âüâéâèÄcù╩ò\Ī / "GUI.C"
*
* [ EIN(tm) project : âTâôâvâïâvâìâOâëâÇ ]
*
* COPYRIGHT Nam 1994, All rights reserved.
*
* özòtüEægì₧üEëⁿò╧üEÅñùÿùpé╖é╫é─Ä⌐ùRüBé╜é╛é╡û│ò█Å╪é┴é╖
*
*-----------------------------------------------------------------------
* V1.0L01â┐ 94.04.15/Nam âvâìâgâ^âCâv
* V1.0L30 94.07.19/Nam EIN(TM)î÷èJö┼
* V1.0L31 94.09.05/Nam GM_PURGEé╠âüâéâèèJò·Ä₧é╔ûΓéóìçéφé╣éΘéµéñé╔
*</Header>==============================================================*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <snd.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
#include <egb.h>
//#include <file_dlg.h>
//#include <tifflib.h>
#include <msdos.cf>
#include <loader.h>
#include <math.h>
#include <io.h>
#include <guidbg.h>
#include <wgb.h>
// üª é▒é▒é▄é┼é¬ò╜ï╧ôIé╔Ägùpé│éΩéΘâwâbâ_
#include <mos.h> // é▒é╠âTâôâvâïé┼é╠é▌òKùv(MOS_getTimeé╠ê╫)
#include "..\ein\eintm.h" // EIN(TM)è╓ÿAâëâCâuâëâèé╠âwâbâ_
#define ERROR (-1)
#define DISPMODE_ICON (0)
#define DISPMODE_PANEL (1)
#define ID_BASE (0)
#define ID_BTNBASE (1)
#define ID_NUMBASE (2)
#define ID_NUM1 (3)
#define ID_NUM2 (4)
#define ID_NUM3 (5)
#define PT_NON (513)
#define PT_NUM (514)
#define PT_MEM (524)
//#define PT_MEMMIN (543)
#define PT_MEMMIN (542)
#define PT_MEMSIZE (19)
#define PT_ANIMST (544)
#define PT_ANIMEND (546)
#define PT_ANGEL (547)
#define ID_MEMREM (6)
#define ID_MEMGET (7)
extern int ID_ICON[];
extern int ID_PANEL[];
extern int dispMode;
extern int ICONmaxId;
int memLot = 0;
char *memMallocPtr = NULL;
int memMalloc = 0;
int memSize = 0;
int memLimit = (1024*1024*4); // âAâjâüü[âVâçâôé≡èJÄné╖éΘÄcâüâéâè(byte)
/*===================================================================*/
/* ÅIù╣Åêù¥ */
/*===================================================================*/
int func_Quit()
{
extern void SaveResumeFile();
/* âèâWâàü[âÇ */
SaveResumeFile();
// âüâéâèèJò·
purgeMem();
MMI_SetHaltFlag( TRUE ) ; /* âCâxâôâgâïü[âvé≡ÅIù╣é│é╣éΘâtâëâO */
return NOERR ;
}
/*===================================================================*/
/* Å╕ôVò\Ī */
/*===================================================================*/
int func_Angel()
{
// ÉöÆlò\Īé≡é╡é╚éó
MMI_SendMessage( ID_ICON[ID_NUMBASE], MM_DETACH, 0 );
MMI_SendMessage( ID_ICON[ID_NUM1], MM_DETACH, 0 );
MMI_SendMessage( ID_ICON[ID_NUM2], MM_DETACH, 0 );
MMI_SendMessage( ID_ICON[ID_NUM3], MM_DETACH, 0 );
// ICONâpâ^ü[âôé≡"Å╕ôV"é╔ (âèâWâàü[âÇÅêù¥Æåé╔î─é╬éΩéΘ)
MMI_SendMessage( ID_ICON[ID_BTNBASE], MM_SETSHAPE, 1, PT_ANGEL);
MMI_SendMessage( ID_ICON[ID_BTNBASE], MM_SHOW, 0 );
return NOERR ;
}
/*===================================================================*/
/* âüâéâèèJò· */
/*===================================================================*/
int purgeMem()
{
// èmò█é╡é─éóé╜âüâéâèé≡èJò·
if (memLot>0){
TL_freeLot( memLot );
memLot = 0;
memMallocPtr = NULL;
memMalloc = 0;
}
return NOERR;
}
/*===================================================================*/
/* âüâéâèèJò·(ûΓéóìçéφé╣éΘ) */
/*===================================================================*/
int purgeMemInteractive()
{
static char *alertStr[]={"mem.exg:\nâüâéâèé≡èJò·é╡é▄é╖?", "éΓé╛éΓé╛", "Ädò√é╚éóé╚éƒ"};
if (memLot>0){
/* ìφÅ£ùvïüé╠âAâëü[âgò\Ī */
if ( MMI_CallMessage(MMI_GetApliId(), GM_ALERT,
AM_ALERT2 | AM_ALERTB1E,(int)alertStr) == 1 ){
/* âüâéâèèJò· */
purgeMem();
}
}
return NOERR;
}
/*===================================================================*/
/* âAâCâRâôÅπé╔Äcâüâéâèé≡ÉöÆlò\Ī */
/*===================================================================*/
int dispMem( m )
{
static char ms[8] = "00.000";
register int foo, bar;
if ( m < 0 ){
m = 0;
}
// sprintf( memstr, "%2d.%03d", m/1000, m%1000 );
foo = (m / 1000) % 100;
bar = ((foo % 100) / 10);
ms[0] = ( bar > 0 ) ?(bar+'0') :' ';
ms[1] = (foo % 10) +'0';
foo = (m % 1000);
ms[3] = (foo / 100) +'0';
ms[4] = ((foo % 100) / 10) +'0';
ms[5] = (foo % 10) +'0';
MMI_SendMessage( ID_PANEL[ID_MEMREM], MM_SETMSG, 1, ms );
MMI_SendMessage( ID_PANEL[ID_MEMREM], MM_ERASE, 0 );
MMI_SendMessage( ID_PANEL[ID_MEMREM], MM_SHOW, 0 );
return NOERR;
}
/*===================================================================*/
/* âüâéâèöjèⁿè╓Éö(âpâlâïÅπâ{â^âôéµéΦcall) */
/*===================================================================*/
int func_purgeMem()
{
int var, min, max, delta, ptColum;
purgeMem();
dispMem( EIN_checkMem()/1024 );
MMI_SendMessage( ID_PANEL[ID_MEMGET], MM_GETNUMBOX, 5, &var, &min, &max, &delta, &ptColum );
MMI_SendMessage( ID_PANEL[ID_MEMGET], MM_SETNUMBOX, 5, 0, min, max, delta, ptColum );
MMI_SendMessage( ID_PANEL[ID_MEMGET], MM_ERASE, 0 );
MMI_SendMessage( ID_PANEL[ID_MEMGET], MM_SHOW, 0 );
return NOERR;
}
/*===================================================================*/
/* Äcâüâéâèò\Īè╓Éö(âpâlâïÅπâ{â^âôéµéΦcall) */
/*===================================================================*/
int func_getSize()
{
int m;
int var, min, max, delta, ptColum;
MMI_SendMessage( ID_PANEL[ID_MEMGET], MM_GETNUMBOX, 5, &var, &min, &max, &delta, &ptColum );
m = (EIN_checkMem()+memMalloc)/1024;
if ( var > m ){
var = m;
MMI_SendMessage( ID_PANEL[ID_MEMGET], MM_SETNUMBOX, 5, var, min, max, delta, ptColum );
}
dispMem( m - var );
return NOERR;
}
/*===================================================================*/
/* âüâéâèĵô╛è╓Éö(âpâlâïÅπâ{â^âôéµéΦcall) */
/*===================================================================*/
int func_mallocMem()
{
int var, min, max, delta, ptColum;
MMI_SendMessage( ID_PANEL[ID_MEMGET], MM_GETNUMBOX, 5, &var, &min, &max, &delta, &ptColum );
if (memLot>0){
TL_freeLot( memLot );
memLot = 0;
memMallocPtr = NULL;
memMalloc = 0;
}
// ÄwÆΦèmò█é╠ê╫é╠âüâéâèlotĵô╛
if ( (memLot=TL_getLot())<0 ){
return ERROR;
}
for ( ; var>0; var-- ){
memMalloc = var * 1024;
if ( (memMallocPtr=TL_mallocMemory(memLot,memMalloc))!=NULL ){
MMI_SendMessage( ID_PANEL[ID_MEMGET], MM_SETNUMBOX, 5, var, min, max, delta, ptColum );
MMI_SendMessage( ID_PANEL[ID_MEMGET], MM_ERASE, 0 );
MMI_SendMessage( ID_PANEL[ID_MEMGET], MM_SHOW, 0 );
break;
}
}
dispMem( EIN_checkMem()/1024 );
return NOERR;
}
/*===================================================================*/
/* âpâlâïò\Ī */
/*===================================================================*/
int func_Panel()
{
char clp[EINCLIPSIZE];
register int ret;
// è∙é╔âpâlâïé¬ò\Īé│éΩé─éóéΘé╚éτë╜éαé╡é╚éó
if ( dispMode==DISPMODE_PANEL){
// printf("dispMode!=0\n");
return NOERR;
}
dispMode=DISPMODE_PANEL;
// âpâlâïé≡ATTACHé╖éΘ
ret = MMI_SendMessage( ID_PANEL[0], MM_ATTACH, 1, MMI_GetBaseObj() ) ;
EIN_clipOpen( clp );
MMI_SendMessage( ID_PANEL[0], MM_SHOW, 0 ) ;
MMI_SendMessage( ID_PANEL[0], MM_WAKE, 0 ) ;
dispMem( EIN_checkMem()/1024 );
EIN_clipClose( clp );
return NOERR;
}
/*===================================================================*/
/* âpâlâïÅ┴ïÄ */
/*===================================================================*/
int func_Close()
{
char clp[EINCLIPSIZE];
// âpâlâïé¬ò\Īé│éΩé─éóé╚éóé╚éτë╜éαé╡é╚éó
if ( dispMode!=DISPMODE_PANEL){
return ERROR;
}
dispMode=DISPMODE_ICON;
// PANELâEâBâôâhâDé≡DETACHé╖éΘ
MMI_SendMessage( ID_PANEL[0], MM_SLEEP, 0 ) ;
MMI_SendMessage( ID_PANEL[0], MM_ERASE, 0 )